/*************************************************************/
/* Copyright (c) 2012 by Progress Software Corporation.      */
/*                                                           */
/* All rights reserved.  No part of this program or document */
/* may be  reproduced in  any form  or by  any means without */
/* permission in writing from Progress Software Corporation. */
/*************************************************************/
/*------------------------------------------------------------------------
    File        : ITableDataUtility.cls
    Purpose     : wrapper for dump and load of tables tenant data in .d 
    Syntax      : 
    Description : 
    Author(s)   : hdaniels
    Created     : Thu Apr 28 00:16:34 EDT 2011
    Notes       : 
  ----------------------------------------------------------------------*/

using Progress.Lang.*.
using OpenEdge.DataAdmin.Util.IDataUtility.
using OpenEdge.DataAdmin.ITenantGroupSet.
using OpenEdge.DataAdmin.ITableSet.
using OpenEdge.DataAdmin.IDataFileList.

interface OpenEdge.DataAdmin.Util.ITableDataUtility inherits IDataUtility:  
    
    /** Set to true to perform a validation request that does not execute the 
        actual command, but checks file availability and directory availability
        Missing directories will cuase a regular error, but the files are 
        returned in the Files (all files) and ErrorFiles (files with error 
        existing files on dumop and non existing on load ) collections  */ 
    define public property ValidateOnly         as logical no-undo get. set.  
    
    /** skip lobs */
    define public property NoLobs         as logical no-undo get. set.
    /*    define public property TenantDirectory      as char no-undo get. set.*/
    /*    define public property TenantLobDirectory      as char no-undo get. set.*/
   
    /** lob sub directory name - used for shared groups and tenants */
    define public property LobDirectory         as char no-undo get. set.

    /** Sub directory name for groups   */
    define public property GroupDirectory       as char no-undo get. set. 
/*    define public property GroupLobDirectory    as char no-undo get. set.*/
   
    /** use default location = tenant data in directories na,ed after tenant and
        group data in group subdirectory and directory named after group.
        The sub directories will be created if necessary on dump  */ 
    define public property UseDefaultLocation as logical   no-undo get. set.  
    
    /** Specifies the tables to include in the utility when UseGroupSelection = false
       'all, 'tenant', 'shared' or 'list' - 'list' requires list of tables 
       - default = 'all' */
    define public property TableSelection       as char no-undo get. set. 
                  
    /** Specifies the groups  to include in the request when UseGroupSelection = true
       'all, 'list'  - 'list' requires list of groups  - default = 'all' */
    define public property GroupSelection       as char   no-undo get. set.
 
    /** Set to yes to use GroupSelection. 
        Set to no (default) to use TableSelection and TenantSelction    */
    define public property UseGroupSelection    as logical   no-undo get. set.   
   
    /** Set to yes to skip group tables when UseGroupSelection = false */
    define public property SkipGroups           as logical   no-undo get. set.   
 
    /** Set to yes to skip secured tables  */
    define public property SkipSecuredTables    as logical   no-undo get. set.   
    
    /** List of groups when UseGroupSelection = true and GroupSelection = 'list' */
    define public property TenantGroups         as ITenantGroupSet   no-undo get.  
    
    /** List of tables when UseGroupSelection = false and TableSelection = 'list' */
    define public property Tables               as ITableSet   no-undo get.  
    
    /** List of files generated by the various selections - Only available after the request*/
    define public property Files                as IDataFileList     no-undo get.  
  
    /** List of problem files generated by the various selections - Only available after the request
        ValidateOnly - dump - files that already exist 
        ValidateOnly - load - files that does not exist 
        Load - Files with error load errors (correponds to .e) */
    define public property ProblemFiles         as IDataFileList     no-undo get.  
    
end interface.